//引入md5加密
var utils = require('./util.js');
var QQMapWX  = require('tencent/qqmap-wx-jssdk.js');
var qqmapsdk;
function getTimestamp() {
  var tmp = Date.parse(new Date()).toString();
  tmp = tmp.substr(0, 10);
  return tmp;
}

//获得用户当前位置
function getPosition(fun){
  var timestamp = getTimestamp();//获取当前时间戳
  wx.getStorage({
    key: 'position',
    success: function (res) {   
      if (res.data.expires) {
        if (timestamp > res.data.expires) {//未超时
          fun(res.data.result);
        } else {
          location(function(res){
            if(res){
              var position = wx.getStorageSync('position');
              fun(position.result);
            }else{
              fun(false);
            }
          });
        }
      } else {//缓存错误
        console.log("2222222222222")
        location(function(res){
          if(res){
            var position = wx.getStorageSync('position');
            fun(position.result);
          }else{
            fun(false);
          }
        });
      }
    },
    fail: function () {//无缓存
      console.log('无缓存');
      location(function(res){
        if(res){
          var position = wx.getStorageSync('position');
          fun(position.result);
        }else{
          fun(false);
        }
      });
    }
  });
}

//获取位置信息
function location(fun){
  setting(function(res){
    if(res){//开始获得位置信息
      wx.getLocation({
        type: 'gcj02',
        success (res) {
          qqmapsdk = new QQMapWX({key: 'JZCBZ-4QPL6-CH7S4-EQ6NS-MFH5J-RMBKT'});
          var latitude = res.latitude
          var longitude = res.longitude
          var data = {
            'latitude' : latitude,
            'longitude' : longitude,
          };
          var timestamp = getTimestamp();//获取当前时间戳
              wx.setStorage({
                key: "position",
                data: {
                  result: data,
                  expires: timestamp + 3600,   //超时时间戳
                },
                success: function () {
                  fun(true);
                },
                fail: function (res) {
                  fun(false);
                }
              })
          // qqmapsdk.reverseGeocoder({
          //   location: {latitude: latitude,longitude: longitude},
          //   success: function (res) {
          //     console.log(res)
          //     var data = {
          //       'province' : res.result.address_component.province,
          //       'city' : res.result.address_component.city,
          //       'district' : res.result.address_component.district,
          //       'latitude' : res.result.location.lat,
          //       'longitude' : res.result.location.lng,
          //     };
          //     // utils.commonAjax('Ajax/position', 2, data).then(function (val) { })
          //     // var data = {
          //     // 
          //     //   'city_id' : val.data.data.city_id,
          //     //   'district_id' : val.data.data.district_id,
          //     //   'province_id' : val.data.data.province_id,
          //     //   'province' : res.result.address_component.province,
          //     //   'city' : res.result.address_component.city,
          //     //   'district' : res.result.address_component.district
          //     // };   
              
             
          //   },
          //   fail: e => {
          //     console.log(e)
          //   }
          // });
        },
        fail: e => {
          console.log('获取位置权限被屏蔽');
          fun(false);
        }
       })
    }else{//权限设置失败
      fun(false);
    }
  });
}

//获取位置前查询权限并设置
function setting(fun){
  // 判断用户是否拒绝了授权
  wx.getSetting({
    success: res => {
      if (typeof(res.authSetting['scope.userLocation']) != 'undefined' && !res.authSetting['scope.userLocation']) {
        console.log('屏蔽了权限');
        // 用户拒绝了授权
        wx.showModal({
          title: '提示',
          content: '您拒绝了定位权限，将无法使用某些功能',
          success: res => {
            if (res.confirm) {//确定跳转到设置页面
              console.log('跳转到权限设置页面');
              // 跳转设置页面
              wx.openSetting({
                success: res => {
                  if (res.authSetting['scope.userLocation']) {// 授权成功，重新定位
                    console.log('开启了权限');
                    fun(true);
                  } else {// 没有允许定位权限
                    console.log('没有开启权限');
                    fun(false);
                  }
                },
                fail: e => {
                  console.log('跳转到权限设置页面失败');
                  fun(false);
                }
              });
            }else{//取消跳转到设置页面
              console.log('取消跳转到权限设置页面');
              fun(false);
            }
          }
        });
      }else{//非权限设置问题
        console.log('未屏蔽权限');
        fun(true);
      }
    },
    fail: e => {//获取设置失败
      console.log('获取设置失败');
      fun(true);
    }
  });
}

module.exports = {
  getPosition:getPosition,
}
